/**
 * 未命名（匿名）名称空间
 *   未命名命名空间（也称为匿名命名空间）是没有名称定义的命名空间
 * 
 * 内联命名空间
 *   inline 关键字
 * 
 */

#include <iostream>

// namespace // unnamed namespace
// {
//     void doSomething() // can only be accessed in this file
//     {
//         std::cout << "v1\n";
//     }
// }



inline namespace V1 // declare an inline namespace named V1
{
    void doSomething()
    {
        std::cout << "V1\n";
    }
}

namespace V2 // declare a normal namespace named V2
{
    void doSomething()
    {
        std::cout << "V2\n";
    }
}



int main()
{
    // doSomething(); // we can call doSomething() without a namespace prefix



    V1::doSomething(); // calls the V1 version of doSomething()
    V2::doSomething(); // calls the V2 version of doSomething()

    doSomething(); // calls the inline version of doSomething() (which is V1)

    return 0;
}